#include "filewriteandread.h"

fileWriteAndRead::fileWriteAndRead()
{

}

QVector<QStringList> fileWriteAndRead::readAndParseFile(const QString &filePath)
{
    QVector<QStringList> dataList;
    QFile file(filePath);
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qWarning() << "Failed to open file:" << filePath;
        return dataList;
    }
    QTextStream in(&file);
    while (!in.atEnd()) {
        QString line = in.readLine(); // 读取一行
        // 使用 QString::split 方法并指定分隔符为 '\003'
        QStringList fields = line.split(QChar(3)); // 3 是 '\003' 的 ASCII 值
        dataList.append(fields); // 将这一行的数据添加到列表中

    }

    file.close();
    return dataList;
}

void fileWriteAndRead::writeDataToFile(const QString &filePath, const QVector<QStringList> &data)
{
    QFile file(filePath);
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
        qWarning() << "Failed to open file:" << filePath;
        return;
    }

    QTextStream out(&file);
    for (const QStringList &row : data) {
        // 假设row是一个包含多个字段的QStringList，字段之间用'\003'分隔
        QString line;
        for (int i = 0; i < row.size(); ++i) {
            line += row.at(i);
            if (i < row.size() - 1) {
                line += QChar(3); // 添加'\003'作为分隔符
            }
        }
        out << line << endl; // 写入一行，并在末尾添加换行符
    }

    file.close();
}
